/*
 * Copyright 2014-2016 CyberVision, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.kaaproject.kaa.server.datamigration;

import static org.kaaproject.kaa.server.datamigration.utils.datadefinition.Constraint.constraint;
import static org.kaaproject.kaa.server.datamigration.utils.datadefinition.ReferenceOptions.CASCADE;

import java.sql.Connection;
import java.sql.SQLException;

public class CtlConfigurationMigration extends AbstractCtlMigration {


  public CtlConfigurationMigration(Connection connection) {
    super(connection);
  }

  @Override
  public void beforeTransform() throws SQLException {
    super.beforeTransform();

    // change FK constraint between table that contains data and appropriate <feature>_schems table
    dd.dropUnnamedFk("configuration", "configuration_schems");
    dd.alterTable(getPrefixTableName())
        .add(constraint("FK_configuration_schems_id")
            .foreignKey("configuration_schems_id")
            .references("configuration_schems", "id")
            .onDelete(CASCADE)
            .onUpdate(CASCADE)
        )
        .execute();
  }

  @Override
  protected String getPrefixTableName() {
    return "configuration";
  }


}
